home *** CD-ROM | disk | FTP | other *** search
/ AMP Graphics Collection / AMP Graphics Collection.iso / programs / author / versions / testd4.dir / 00002_Script_Cut-n-paste Lingo handlers < prev    next >
Text File  |  1996-08-09  |  6KB  |  214 lines

  1. --Versions XObject, v. 1.1, 8/9/96
  2. --Copyright ⌐ 1996 Glenn M. Picher, Dirigo Multimedia
  3. --Email: gpicher@maine.com; Phone: 207/767-8015;
  4. --Web: http://www.maine.com/shops/gpicher
  5.  
  6. --These handlers can be cut and pasted into your projects.
  7. --You'll never have to deal with the XObject directly.
  8. --Make sure to copy the XObject into the same folder as your movie,
  9. --or modify the filenames in the insureVerObject() handler.
  10. --Don't forget to copy Ask32.exe, Vers32.dll,
  11. --Ask16.exe, and Vers16.dll there, too.
  12.  
  13. --Note that the names of these Lingo handlers will be the same
  14. --as the names of the global handlers implemented by the eventual
  15. --Xtra version of the Versions XObject, so you won't need to 
  16. --revise your code (other than eliminating this script, 
  17. --and commenting out the necessary XObject initialization code, 
  18. --if you had chosen to place it in your startMovie, stopMovie,
  19. --or other handlers).
  20.  
  21. global gVerObject, gVerFileName, gOpenXLibFileName, gVoid
  22.  
  23. on openVersions
  24.   insureVerObject()
  25. end
  26.  
  27. on closeVersions
  28.   if objectP(gVerObject) then gVerObject(mDispose)
  29.   if objectP(factory("Versions")) then 
  30.     if stringP(gVerFileName) then 
  31.       closexlib gVerFileName
  32.       set gVerFileName to gVoid
  33.     else
  34.       alert "Warning: can't close Versions XObject (filename unknown)."
  35.       set gVerFileName to gVoid
  36.       return
  37.     end if
  38.     if objectP(factory("Versions")) then
  39.       alert "Warning: can't close Versions XObject (instances still active?)."
  40.     end if
  41.   end if
  42. end
  43.  
  44. on VerMDescribe
  45.   insureVerObject()
  46.   return Versions(mMessageList)
  47. end
  48.  
  49. on quickTimeVersion
  50.   insureVerObject()
  51.   return gVerObject(mQuickTimeVersion)
  52. end
  53.  
  54. on win32QuickTimeVersion
  55.   insureVerObject()
  56.   return gVerObject(mWin32QuickTimeVersion)
  57. end
  58.  
  59. on fileVersion theFile
  60.   if not stringP(theFile) then
  61.     alert "fileVersion(): theFile not a string."
  62.     abort
  63.   end if
  64.   insureVerObject()
  65.   return gVerObject(mFileVersion, theFile)
  66. end
  67.  
  68. on windowsDirectory
  69.   insureVerObject()
  70.   return gVerObject(mWindowsDirectory)
  71. end
  72.  
  73. on win32WindowsDirectory
  74.   insureVerObject()
  75.   return gVerObject(mWin32WindowsDirectory)
  76. end
  77.  
  78. on systemDirectory
  79.   insureVerObject()
  80.   return gVerObject(mSystemDirectory)
  81. end
  82.  
  83. on win32systemDirectory
  84.   insureVerObject()
  85.   return gVerObject(mWin32SystemDirectory)
  86. end
  87.  
  88. on dosVersion
  89.   insureVerObject()
  90.   return gVerObject(mDOSVersion)
  91. end
  92.  
  93. on windowsVersion
  94.   insureVerObject()
  95.   return gVerObject(mWindowsVersion)
  96. end
  97.  
  98. on win32Version
  99.   insureVerObject()
  100.   return gVerObject(mWin32Version)
  101. end
  102.  
  103. on win32Platform
  104.   insureVerObject()
  105.   return gVerObject(mWin32Platform)
  106. end
  107.  
  108. on win32Build
  109.   insureVerObject()
  110.   return gVerObject(mWin32Build)
  111. end
  112.  
  113. on winNTVersion
  114.   insureVerObject()
  115.   return gVerObject(mWinNTVersion)
  116. end
  117.  
  118. on getShortFileName theFile
  119.   insureVerObject()
  120.   return gVerObject(mGetShortFileName, theFile)
  121. end
  122.  
  123. on getLongFileName theFile
  124.   insureVerObject()
  125.   return gVerObject(mGetLongFileName, theFile)
  126. end
  127.  
  128. on insureVerObject
  129.   if not objectP(gVerObject) then 
  130.     set gVerObject = getXObjectInstance("Versions", ¼
  131.       "Versions XObject", "VERSIONS.DLL") --can include full pathnames, too
  132.     set gVerFileName to gOpenXLibFileName
  133.     if not objectP(gVerObject) then
  134.       alert "Warning: global XObject instance ''gVerObject'' is invalid."
  135.       abort
  136.     end if
  137.   end if
  138. end
  139.  
  140. on getXObjectInstance theName, theMacFile, theWinFile
  141.   set theFactory to factory(theName)
  142.   if not objectP(theFactory) then
  143.     if the machineType < 256 then
  144.       --Mac
  145.       set theFile to theMacFile
  146.       set thePlatform to "Macintosh"
  147.     else
  148.       --Win
  149.       set theFile to theWinFile
  150.       set thePlatform to "Windows"
  151.     end if
  152.     if pathOnly(theFile) = EMPTY then 
  153.       set checkFile to the pathName & theFile
  154.     else
  155.       set checkFile to theFile
  156.     end if
  157.     if not fileExists(checkFile) then
  158.       set msg = "Could not locate the " & thePlatform
  159.       put " XObject file ''" & fileOnly(checkFile) & "'' in the folder ''" after msg
  160.       put pathOnly(checkFile) & "'' ." after msg
  161.       alert msg
  162.       return gVoid
  163.     end if
  164.     openxlib theFile
  165.     set gOpenXLibFileName to theFile --preserve for possible closexlib later
  166.     set theFactory to factory(theName)
  167.     if not objectP(theFactory) then
  168.       set msg = "Could not access the ''" & theName & "'' XObject in the "
  169.       put thePlatform after msg
  170.       put "XObject file ''" & fileOnly(checkFile) & "'' in the folder ''" after msg
  171.       put pathOnly(checkFile) & "'' ." after msg
  172.       alert msg
  173.       return gVoid
  174.     end if
  175.   end if
  176.   return theFactory(mNew)
  177. end
  178.  
  179. on fileExists theFile
  180.   set thePath to pathOnly(theFile)
  181.   if thePath = EMPTY then set thePath to the pathName
  182.   set fileName to fileOnly(theFile)
  183.   repeat with i = 1 to the maxInteger
  184.     set thisFile to getNthFileNameInFolder(thePath, i)
  185.     if thisFile = EMPTY then return FALSE
  186.     if thisFile = fileName then return TRUE
  187.   end repeat
  188.   return FALSE
  189. end
  190.  
  191. on fileOnly thePath
  192.   set oldDelim to the itemDelimiter
  193.   set the itemDelimiter to ":"
  194.   if the machineType = 256 then set the itemDelimiter to "\"
  195.   set ni to the number of items in thePath
  196.   set returnValue to item ni of thePath
  197.   set the itemDelimiter to oldDelim
  198.   return returnValue
  199. end
  200.  
  201. on pathOnly thePath
  202.   set oldDelim to the itemDelimiter
  203.   set the itemDelimiter to ":"
  204.   if the machineType = 256 then set the itemDelimiter to "\"
  205.   set ni to the number of items in thePath
  206.   if ni = 1 then
  207.     set returnValue to ""
  208.   else
  209.     set returnValue to item 1 to (ni-1) of thePath & the itemDelimiter
  210.   end if
  211.   set the itemDelimiter to oldDelim
  212.   return returnValue
  213. end
  214.